package cn.edu.zut.score.service;

import cn.edu.zut.score.core.domain.PageResponse;
import cn.edu.zut.score.core.domain.RestResponse;
import cn.edu.zut.score.core.dto.request.ClazzPageRequest;
import cn.edu.zut.score.core.dto.response.ClazzResponse;
import cn.edu.zut.score.core.dto.response.UserResponse;
import cn.edu.zut.score.core.entity.Clazz;
import cn.edu.zut.score.core.entity.Info;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author zby
 * @since 2021-06-25
 */
public interface IClazzService extends IService<Clazz> {

    RestResponse<ClazzResponse> saveClazz(Clazz clazz);

    RestResponse<Long> deleteClassById(Long classid);

    RestResponse<Integer> deleteClassByIds(List<Long> ids);

    RestResponse<ClazzResponse> queryClass(Long classid);

    RestResponse<List<Info>> queryAllClasses();

    RestResponse<PageResponse<ClazzResponse>> queryClasses(ClazzPageRequest classQuery);

    RestResponse<PageResponse<UserResponse>> queryClassStudents(Long classid);

    void addStudent(Long classid);

    void removeStudent(Long classid);
}
